cropper文档
cropperjs翻译文档:cropper.js 裁剪图片并上传(文档翻译+demo)
install
1 | yarn add react-cropper |
1 | import Cropper from 'react-cropper' |
主要配置说明
viewMode 配置视图模式
- 0:无限制
- 1:限制裁剪框不能超出图片的范围
- 2:限制裁剪框不能超出图片的范围,且图片填充模式为最长边填充
- 3:限制裁剪框不能超出图片的范围,且图片填充模式为最短边填充
dragMode 配置拖拽模式
- crop:拖拽形成新的裁剪框
- move:拖拽只能移动图片
- none:不做处理
主要方法说明
onInitialized 获取cropper实例
1 | onInitialized={(instance) => {cropper.current = instance}} |
zoom 缩放事件
在zoom
监听事件中限制最大最小缩放比例:
1 | const zoom = (e) => { |
getCanvasData 获取裁剪的图片数据
toBlob
toBlob
第二个参数默认是image/png
。
1 | const getCroppedData = () => { |
toDataURL
1 | cropper.current.getCroppedCanvas().toDataURL('image/jpeg') |
实践
1 | <Cropper |
结合Antd Upload裁剪并上传图片
beforeUpload
返回Promise
。在beforeUpload
方法中,将得到的图片文件转成DataURL传给裁剪组件。设置定时器,每隔一段时间查询裁剪是否完成,若裁剪完成则resolve(croppedFile)
。
1 | const beforeUpload = (file) => { |